עד כה עסקנו בתוכניות שמתקדמות פקודה אחרי פקודה העתק ל- ax את הערך 3 העתק ל- bx את הערך 4 הוסף ל- ax את bx כפול את התוצאה ב- 2 והעתק ל- cx

Similar documents
7 קרפ תויגול,תויטמתירא תודוקפ הזזהו

לאחר מכן נוכל לכתוב תוכניות שכוללות אלגוריתמים

מבוא למחשב בשפת פייתון

ניפוי שגיאות )Debug( מאת ישראל אברמוביץ

קשירות.s,t V שני צמתים,G=(V,E) קלט: גרף מכוון מ- s t ל- t ; אחרת.0 אם יש מסלול מכוון פלט: הערה: הגרף נתון בייצוג של רשימות סמיכות.

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

DNS פרק 4 ג' ברק גונן מבוסס על ספר הלימוד "רשתות מחשבים" עומר רוזנבוים 1

מבוא לאסמבלי מאת אופיר בק חלקים נרחבים ממאמר זה נכתבו בהשראת הספר "ארגון המחשב ושפת סף" אשר נכתב ע"י ברק גונן לתוכנית גבהים של משרד החינוך.

תוכן העניינים: פרק סדרות סיכום תכונות הסדרה החשבונית:... 2 תשובות סופיות:...8 סיכום תכונות הסדרה ההנדסית:...10

זה. Nir Adar

בוחן בתכנות בשפת C בצלחה

טכנולוגיית WPF מספקת למפתחים מודל תכנות מאוחד לחוויית בניית יישומיי

יחידה ארגון המחשב ושפת סף: שאלות תרגול

עץ תורשה מוגדר כך:שורש או שורש ושני בנים שכל אחד מהם עץ תורשה,כך שערך השורש גדול או שווה לסכום הנכדים(נכד-הוא רק בן של בן) נתון העץ הבא:

שאלות חזרה לקראת מבחן מפמ"ר אינטרנט וסייבר

מבנה מחשבים ספרתיים תרגול מס' חזרה על ארכיטקטורת ה-

תצוגת LCD חיבור התצוגה לבקר. (Liquid Crystal Display) המערכת.

מבוא לתכנות ב- JAVA תרגול 7

המבנה הגאומטרי של מידה

מודל מעבד-זיכרון רוחב הקו בביטים בין המשתנה למעבד ב- PDP כיווני העברת המידע במודל מעבד-זיכרון SFS CPU MDR MEM MAR

מכונת מצבים סופית תרגול מס' 4. Moshe Malka & Ben lee Volk

Hebrew Ulpan HEB Young Judaea Year Course in Israel American Jewish University College Initiative

Intel x86 Jump Instructions. Part 6. JMP address. Operations: Program Flow Control. Operations: Program Flow Control.

מותאמת לסביבת. Visual C# 2005 Express שונות. ולבצע rename לשם המבוקש

Redirection The Input Buffer

סה"כ נקודות סה"כ 31 נקודות סה"כ 21 תוכן עניינים של פתרון המבחן. לולאת for )נתון אלגוריתם... מעקב, פלט

ASP.Net MVC + Entity Framework Code First.

Rules Game (through lesson 30) by Nancy Decker Preparation: 1. Each rule board is immediately followed by at least three cards containing examples of

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

Intel x86 Jump Instructions. Part 5. JMP address. Operations: Program Flow Control. Operations: Program Flow Control.

למבחן ביסודות מדעי המחשב דוגמא

Patents Basics. Yehuda Binder. (For copies contact:

Reflection Session: Sustainability and Me

Advisor Copy. Welcome the NCSYers to your session. Feel free to try a quick icebreaker to learn their names.

Computer Structure. Exercise #1 יש להגיש את התשובות הסופיות על גבי טופס זה.

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

מבוא למדעי המחשב בשפת ++C - חוברת תרגילים

תרגול 8. Hash Tables

זו מערכת ישרת זוית )קרטזית( אשר בה יש לנו 2 צירים מאונכים זה לזה. באותו מישור ניתן להגדיר נקודה על ידי זוית ורדיוס וקטור

מבוא למדעי המחשב בשפת ++C - חוברת תרגילים

A R E Y O U R E A L L Y A W A K E?

Practical Session No. 13 Amortized Analysis, Union/Find

התכנית הראשונה שלי

יסודות מבני נתונים. תרגול :9 ערימה - Heap

ANNEXURE "E1-1" FORM OF IRREVOCABLE STANDBY LETTER OF CREDIT PERFORMANCE OF CONTRACT (WHERE PRICES ARE NOT LINKED TO AN ESCALATION FORMULA)

סיכומים למבחן בקורס מבנה מחשבים

מבוא למדעי המחשב בשפת JAVA חוברת תרגילים... 1

שנה"ל תשע"ד,סמסטר א',מועד א שאלון בחינה בקורס: מבוא למדעי המחשב לתעו"נ מספר : בחלק א' 11 שאלות, יש לענות על 11 מתוכן )כל שאלה מזכה ב 7 נקודות(

הנדסה-לאחור: שרשרת העלייה של Windows 7 חלק שני - VBR

SPSS 10.0 FOR WINDOWS

JMP ("לחימום"), לייצר "רב שיח" בין מורים/עוזרי הוראה לגבי השפעה של טכניקה זו או אחרת: על קליטה החומר על המוטיבציה לנצל כלים כדי להפוך לאוטו-דידקטים

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון א' Corresponds with Module A (Without Access to Information from Spoken Texts) גרסה א'

שיא הסי-ים יורם ביברמן כל הזכויות שמורות למחבר. אין לעשות כל שימוש מסחרי בספר זה או בקטעים ממנו. ניתנת הרשות להשתמש בו לצורכי לימוד של המשתמש בלבד.

מותאמת לסביבת. Visual C# 2005 Express שונות. ולבצע rename לשם המבוקש

המחלקה למדעי המחשב, אוניברסיטת בן גוריון מבני נתונים, סמסטר אביב 2102 עבודת בית מספר - 2 מעשית

פרק מיון וחיפוש - לשם מה? הגדרה

Visual C# Express יסודות מדעי המחשב 1 מהדורת עיצוב תשס"ו 2006 כתבה: יעל בילצ'יק (סופרין)

A JEW WALKS INTO A BAR: JEWISH IDENTITY IN NOT SUCH JEWISH PLACES

מבנה התכנית יסודות מדעי המחשב התכנית הראשונה שלי

THINKING ABOUT REST THE ORIGIN OF SHABBOS

מבוא למחשב בשפת Matlab

בהצלחה! (MODULE C) Hoffman, Y. (2014). The Universal English-Hebrew, Hebrew-English Dictionary

מספר ת"ז: יש לסמן את התשובה הטובה ביותר בתשובון. לא יינתן ניקוד על סימון תשובה בטופס הבחינה או במחברת הבחינה.

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 102 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 5

HEBREW THROUGH MOVEMENT

בחינת בגרות, תשע"ז מס' שאלון: מדעי המחשב שאלה 1. Java. blog.csit.org.il הילה קדמן

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון ב' Corresponds with Module B גרסה ב' הוראות לנבחן

מספר השאלון: Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( א נ ג ל י ת (MODULE F) ספרות )מילון הראפס אנגלי-אנגלי-ערבי(

2 יחידות לימוד הוראות לנבחן רשו ם "טיוטה" בראש כל עמוד טיוטה. רישום טיוטות כלשהן על דפים שמחוץ למחברת הבחינה עלול לגרום לפסילת הבחינה!

ל"תוכנה" שכותבים, כמו פונקציה זו, קוראים "קוד"

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה!

אנגלית (MODULE E) בהצלחה!

דיאגרמה לתיאור Classes

תרגיל בית מספר - 1 להגשה עד 9 בנובמבר בשעה 23:55

שאלון ד' הוראות לנבחן

שאלון ו' הוראות לנבחן

מערכים Haim Michael. All Rights Reserved.

אנגלית שאלון ז' ג רסה א' הוראות לנבחן בהצלחה! )4( ההנחיות בשאלון זה מנוסחות בלשון זכר ומכוונות לנבחנות ולנבחנים כאחד. (MODULE G)

זה אומר שאחרי הכרות עם השפה מה שדורש השקעה אפשר להקדיש את מרבית הזמן לצד המוזיקלי יצירתי ולא התכנותיÆ איזה כיף

מושגים בסיסיים תלמידים והורים יקרים,

תורת הקומפילציה

הוראת הדפסה/פלט כשנריץ קובץ זה נקבל ( 6/5/4 מחקו את המיותר( שורות "הדפסה" לדף ה- HTML בשורה 3 יודפס בשורה 6 יודפס

מדעי המחשב פתרון בחינת הבגרות פרק ראשון

א נ ג ל י ת בהצלחה! ב. משרד החינוך בגרות לנבחנים אקסטרניים )מילון הראפס אנגלי-אנגלי-ערבי( השימוש במילון אחר טעון אישור הפיקוח על הוראת האנגלית.

Structural Vs. Nominal Typing

Homework 10. Theoretical Analysis of Service Stations in Steady State. Priority Queues.

Name Page 1 of 6. דף ט: This week s bechina starts at the two dots in the middle of

Theories of Justice

לצפייה בפתרון בווידאו לתרגילים שבחוברת, כנסו ל "סטטיסטיקה והסתברות" בשאלון 802 שבאתר

Summing up. Big Question: What next for me on my Israel Journey?

מקוון Sharing and Playing: Serious Games and Collaboration in Online Education

שאלון ו' הוראות לנבחן

מדעי המחשב ב' פתרון בחינת הבגרות. שאלה 1 i - false

Genetic Tests for Partners of CF patients

הבסיס כתיבת התכנית הראשונה שימוש במשתנים. הטיפוס הבסיסי object. הטיפוס הבסיסי string משפטי בקרה. שימוש ב- Enumerations. שימוש ב- Namespaces

(MODULE E) ב ה צ ל ח ה!

Name Page 1 of 5. דף ז. This week s bechina begins with the fifth wide line at the top of

כפתור רדיו בחירה בודדת מתוך רשימת אפשרויות

אוסף תרגילים למעבדה ביוניקס - 4

T H E S U N F L O W E R L I M I T S T O F O R G I V E N E S S

Transcription:

1 ברק גונן

עד כה עסקנו בתוכניות שמתקדמות פקודה אחרי פקודה העתק ל- ax את הערך 3 העתק ל- bx את הערך 4 הוסף ל- ax את bx כפול את התוצאה ב- 2 והעתק ל- cx לעיתים נרצה שהתוכנית תבצע פקודות רק אם מתקיים תנאי מוגדר אם האיבר הראשון במערך גדול מהאיבר השני, אז cx=1 אחרת cx=2 2 ברק גונן

יכולת להשוות בין שני ערכים פקודת cmp יכולת "לקפוץ" לנקודה מוגדרת בקוד בעקבות תוצאת ההשוואה סוגים שונים של פקודות קפיצה: קפיצה בלתי מותנית jmp קפיצה מותנית jb, jbe, ja, jg, je, jne ועוד יכולת לחזור על פעולה כל עוד מתקיים תנאי מוגדר פקודת loop 3 ברק גונן

קיצור של compare מקבלת שני אופרנדים cmp operand1, operand2 שאלת חשיבה:?cmp איך המעבד מבצע 4 ברק גונן

המעבד מבצע חיסור בין האופרנדים בניגוד לחיסור רגיל, התוצאה אינה מועתקת מה- ALU אל אופרנד היעד רק הדגלים מושפעים איך הקוד הבא ישפיע על מצב הדגלים? דגל האפס ZF הפקודה )1 כאשר התוצאה היא אפס( דגל הסימן- SF 1( דגל הנשא- CF כאשר הביט השמאלי של התוצאה הוא 1( )1 כאשר המחסר גדול מהמחוסר בייצוג )unsigned ax, 3 mov פקודת mov אינה משפיעה על מצב הדגלים cmp ax, 3 1 0 0 cmp ax, 2 0 0 0 cmp ax, 4 0 1 1 5 ברק גונן

cmp צורות כתיבה חוקיות של 6 ברק גונן

קיצור של jump מקבלת כתובת שולחת את המעבד, ללא תנאי, לכתובת המוגדרת לאחר ביצוע פקודת ה- jmp ישתנה רגיסטר ה- IP 7 ברק גונן

CODESEG mov ax, 1 jmp cs:000ah ; cs- the segment to jump to ; 0000A' the offset in the segment.??? 8 ברק גונן

DATASEG address dw 000Ah CODESEG mov ax, @data mov ds, ax mov ax, 1 jmp [address] קפיצה -near בתוך אותו סגמנט אין צורך לציין את הסגמנט לדוגמה: far קפיצה לסגמנט אחר חייבים לציין לאיזה סגמנט קופצים jmp cs:000a שימושית אם יש מסגמנט קוד אחד בפועל לא נשתמש בה- תמיד נגדיר סגמנט קוד אחד 9 ברק גונן

נתונה התכנית הבאה )העתיקו אותה לתוך ה- :)base.asm שבתכנית CODESEG xor ax, ax add ax, 5 add ax, 4 בעזרת הוספת פקודת jmp ריצת התכנית.ax=4 לתכנית, גירמו לכך שבסוף 10 ברק גונן

שפת אסמבלי מאפשרת לנו לתת תווית Label לשורה בקוד פקודת jmp יכולה לקבל תווית jmp Start jmp WaitForKey jmp PrintResult רצוי שלתוויות יהיו שמות בעלי משמעות למה זה טוב? אפשר לבצע שינויים בתוכנית בלי לכתוב מחדש את פקודות ה- jmp 11 ברק גונן

IncAX: xor ax, ax jmp IncAX add ax, 3 inc ax מה יהיה ערכו של ax בסיום הריצה? מה יקרה אם נשתול בתוכנית את הקוד הבא? IncAx: inc jmp ax IncAx 12 ברק גונן

נתונה התכנית הבאה )העתיקו אותה לתוך ה- :)base.asm שבתכנית CODESEG xor ax, ax add ax, 5 add ax, 4 בעזרת הוספת פקודת jmp אל label שתגדירו, לכך שבסוף ריצת התכנית.ax=4 גירמו 13 ברק גונן

קיים אוסף של פקודות קפיצה מותנות מבוצעות רק אם תנאי מוגדר מתקיים cmp בדרך כלל ייכתבו אחרי פקודת אופן הפעולה: בדיקה אם דגל כלשהו, או כמה דגלים, מקיימים תנאי מוגדר. לדוגמה, האם דגל האפס שווה ל- 1 אם התנאי מתקיים, IP משתנה לכתובת שהוגדרה על-ידי המשתמש. בדרך כלל כתובת זו תצויין באמצעות label אם התנאי אינו מתקיים, IP ממשיך לפקודה הבאה 14 ברק גונן

מתכנת תירגם לקוד אסמבלי את אוסף הפעולות הבא: "בצע פעולת השוואה בין שני אופרנדים. אם האופרנד הראשון גדול מהשני, בצע קפיצה" המתכנת הכניס לאופרנד הראשון את הערך 00000001b המתכנת הכניס לאופרנד השני את הערך 10000001b האם המעבד יבצע קפיצה? 10000001b 00000001b 15 ברק גונן

הערך 10000001b,12910 כמספר unsigned,-12710 כמספר signed יכול לייצג שני מספרים: כדי שהמעבד יידע אם לבצע קפיצה, אנחנו צריכים להורות לו מהו סוג ההשוואה המבוקש בשאלת החשיבה, התשובה אם המעבד יקפוץ או לא תלויה בפקודת הקפיצה שהמתכנת כתב! 16 ברק גונן

כל פקודות הקפיצה מתחילות באות jump j- קפיצות unsigned מכילות את האותיות a או b- קיצור של above או below קפיצות signed מכילות את האותיות g או l- קיצור של less או great בנוסף, -n -e פקודות הקפיצה יכולות להכיל את האותיות: קיצור של קיצור של not equal 17 ברק גונן

סיכום פקודות הקפיצה החוקיות 18 ברק גונן

כיתבו תוכנית שבודקת אם המשתנה Var1 גדול מ- Var2 )שימו לב- יש להתייחס אל הערכים במשתנים כ- unsigned (. אם כן-,ax=1 אחרת.ax=0 כיתבו תוכנית שבודקת אם ax גדול מאפס )יש להתייחס לערך של ax בייצוג שלו כ- signed כמובן(, ואם כן מורידה את ערכו באחד. אתגר: כיתבו תכנית, שמוגדר בה משתנה בגודל בית בשם.TimesToPrintX תנו לו ערך התחלתי כלשהו )חיובי(. הדפיסו למסך כמות ' x 'ים כערכו של.TimesToPrintX הדרכה: קטע הקוד הבא מדפיס למסך את התו 'x': mov dl, 'x' mov ah, 2h int 21h החזיקו ברגיסטר כלשהו את כמות הפעמים ש-' x ' כבר הודפס למסך. צרו label שמדפיס x למסך ומקדם את הרגיסטר ב- 1. לאחר מכן בצעו השוואה בין הרגיסטר ל- Times2PrintX, ואם לא מתקיים שוויון- קפצו ל-.label מה יקרה אם Times2PrintX יאותחל להיות מספר שלילי? או אפס? 19 ברק גונן

ביצוע פעולה או אוסף פעולות מספר פעמים מוגדר מה לדעתכם מבצע הקוד הבא? ובידקו! הריצו mov cx, 10 PrintX: mov dl, 'x mov ah, 2h int 21h loop PrintX ; print x to the screen 20 ברק גונן

פקודת loop מבצעת את הפעולות הבאות- הבא: מפחיתה 1 מערכו של cx משווה את cx לאפס אם אין שוויון )כלומר, ערכו של cx אינו אפס( - מבצעת jmp label שהגדרנו קטעי הקוד הבאים זהים: לפי הסדר loop SomeLabel dec cx cmp cx, 0 jne SomeLabel ל- 21 ברק גונן

mov TimesToPrintX, 0 mov cx, TimesToPrintX PrintX: mov dl, 'x' mov ah, 2h int 21h loop PrintX x נתון הקוד הבא כמה פעמים יודפס למסך? התשובה: 65,536 פעמים פקודת ה- loop קודם מורידה את ערכו של cx ורק אחר כך בודקת אם הוא גדול או שווה לאפס! הוסיפו שורות קוד כך שהתכנית תעבוד באופן תקין גם עבור TimesToPrintX=0 22 ברק גונן

mov TimesToPrintX, 0 xor cx, cx mov cx, TimesToPrintX cmp cx, 0 je ExitLoop PrintX: mov dl, 'x' mov ah, 2h int 21h loop PrintX ExitLoop: 23 ברק גונן

סידרת פיבונצ'י: סדרת פיבונצ'י מוגדרת באופן הבא- האיבר הראשון הוא 0, האיבר השני הוא 1, כל איבר הוא סכום שני האיברים שקדמו לו. צרו תוכנית שמחשבת את עשרת המספרים הראשונים בסדרת פיבונצ'י ושומרת אותם במערך בעל 10 בתים. בסיום התוכנית המערך צריך להכיל את הערכים הבאים : 0,1,1,2,3,5,8,13,21,34 צרו תוכנית שמחשבת את המכפלה,Var1*Var2 משתנים בגודל בית שיש להתייחס אליהם כ- unsigned, אך מבצעת זאת ע"י פעולת חיבור. הדרכה: יש לבצע פעולת חיבור של sum=var1+sum ולחזור עליה ע"י loop כמות של Var2 פעמים. 24 ברק גונן

צרו תוכנית שמקבלת שני מספרים מהמשתמש ומדפיסה למסך מטריצה של 'x' בגודל המספרים שנקלטו- המספר הראשון הוא מספר השורות והשני הוא מספר העמודות במטריצה. לדוגמה עבור קלט 5 ואחר כך 4, יודפס למסך: xxxx xxxx xxxx xxxx xxxx mov int sub mov mov int ah, 1h 21h al, '0' dl, 'x' ah, 2h 21h הדרכה קליטת ספרה: שורות הקוד הבאות קולטות ספרה מהמשתמש, ממירות אותה למספר בין 0 ל- 9 ומעתיקות את התוצאה ל- :al הדפסה למסך: קטע הקוד הבא מדפיס למסך את התו :'x' mov mov int dl, 0ah ah, 2h 21h מעבר שורה: הפקודות הבאות גורמות להדפסה של מעבר שורה: 25 ברק גונן

Art of מתוך הספר Assembly משמאל לימין: תוויות והנחיות לאסמבלר פקודה אופרנדים תיעוד בתוך לולאה לא מבצעים הזזה של טאב 26 ברק גונן

בשלב הראשון למדנו שאין הבדל בדרך בה נשמרים בזיכרון המחשב מספרים signed ו- unsigned הכל נשמר כאחדות ואפסים הפרשנות שלנו היא שמעניקה את הערך הנכון למידע DATASEG: Var1 db? Var2 db? CODESEG mov al, -120 mov [Var1], al mov al, 136 mov [Var2], al 27 ברק גונן

בפרקים האחרונים ראינו איך נוצרת הפרשנות: פקודות מתמטיות נפרדות )כגון )mul / imul סטים נפרדים של פקודות קפיצה מותנות mov bl, 00000010b mov al, 11111011b imul bl ; -10 mov bl, 00000010b mov al, 11111011b mul bl ; 502 28 ברק גונן

אם כך, איך זה שבשפות עיליות יש טיפוסי משתנים מסוג?unsigned ו- signed לדוגמה שפת C: 29 ברק גונן

הסבר: למדנו שקומפיילר הוא קוד שתפקידו לבצע המרה משפה עילית לשפת אסמבלי הקומפיילר מתאים את פקודות האסמבלי לטיפוס המשתנה שהוגדר בשפה עילית בקוד האסמבלי שנוצר, כבר אין משתנים signed/unsigned 30 ברק גונן

למדנו את השורות המוקפות בכחול השורות הירוקות: -IDEAL הנחיה לאסמבלר, סגנון כתיבה -model הנחיה לאסמבלר, ארגון הסגמנטים start -END הנחיה לאסמבלר, יש לבצע המרה לקוד מכונה עד לשורה זו ולהתחיל את התכנית מהתווית start השורות המוקפות בחום- בפרקים הבאים נלמד 31 ברק גונן